package org.gws.alaska.metamodel.builder;

def define (p){
}
class Order {
}
class Person{
	def isEntity = true // opzionale 
	Integer ID
	String name
	String surname
	def orders = [hasMany: Order]
	def sumOfOrder = Alaska.ocl{  sum (fields: [], from: orders) }
	def tagValues =  {
		ID(unique: true)
		name(notnull: true)
		surname(notnull: true)
	}
}

class ShortAritist {
	def isDataUnit = true
	def source = [hasOne: Artist]
	def selector = Alaska.ocl {
		select (fields:[FirstName: "", LastName: ""],
				from: source)
	}
	// in questo caso , gli attributi sono riferiti
	// alla relazione source 
	def attributes = {
		source(FirstName, LastName, Photo)
	}
}


//define Person: Entity

/**
 * 1) Rimuovere i commenti
 * 2) Non consentire la creazione di tipi 
 *    con lo stesso nome di uno stereotipo ( :S )
 * 
 **/


def r = "entity Entity /* entity Name {*/{".replaceAll(/\/\*(.|[\r\n])*?\*\//, '');

def pattern = "(entity)"
 
def replaced = "entity relation /*entity Name {*/{".replaceAll(/${pattern} ([a-zA-Z][a-zA-Z0-9]*) /, 'class $2');

print replaced; 






